package transacoes;

import utils.*;
import data.*;
import java.util.*;

public class PacienteConsomeMedicamento {

  public boolean incluir (PacienteConsomeMedicamentoDO paciente_medicamento) throws Exception{

     // validacao das regras de negocio
     if ( (isEmptyInt(paciente_medicamento.getPaciente_idPaciente())) || ( isEmptyInt(paciente_medicamento.getMedicamento_idMedicamento())) || (isEmpty(paciente_medicamento.getQuantidade()))  ) {
       return false;
     }

     // efetuando a transacao
     Transacao tr = new Transacao();
     try {

       tr.begin();
         PacienteConsomeMedicamentoData mdata = new PacienteConsomeMedicamentoData();
         mdata.incluir(paciente_medicamento, tr);
       tr.commit();
       return true;
       
     } catch(Exception e) {
         tr.rollback();
         System.out.println("erro ao incluir " + paciente_medicamento.getPaciente_idPaciente());
         e.printStackTrace();
     }
     return false;
  } // incluir
  
  public boolean excluir (PacienteConsomeMedicamentoDO paciente_medicamento) throws Exception{

     // validacao das regras de negocio
     if ( (isEmptyInt(paciente_medicamento.getPaciente_idPaciente()))) {
       return false;
     }

     // efetuando a transacao
     Transacao tr = new Transacao();
     try {

       tr.begin();
         PacienteConsomeMedicamentoData mdata = new PacienteConsomeMedicamentoData();
         mdata.excluir(paciente_medicamento, tr);
       tr.commit();
       return true;
       
     } catch(Exception e) {
         tr.rollback();
         System.out.println("erro ao excluir " + paciente_medicamento.getPaciente_idPaciente());
         e.printStackTrace();
     }
     return false;
  } // excluir

  public boolean atualizar(PacienteConsomeMedicamentoDO paciente_medicamento) throws Exception {
     Transacao tr = new Transacao();
         try{
           // inserir validacoes de regras de negocio
           tr.begin();
             PacienteConsomeMedicamentoData mdata = new PacienteConsomeMedicamentoData();
             mdata.atualizar(paciente_medicamento, tr);
           tr.commit();
           return true;
         } catch (Exception e) {
           tr.rollback();
           System.out.println("erro ao atualizar" + paciente_medicamento.getPaciente_idPaciente());
           e.printStackTrace();
         }
         return false;
  } // atualizar

  public PacienteConsomeMedicamentoDO buscar(int Paciente_idPaciente) throws Exception{
     Transacao tr = new Transacao();
         try{
           tr.beginReadOnly();
             PacienteConsomeMedicamentoData mdata = new PacienteConsomeMedicamentoData();
             PacienteConsomeMedicamentoDO m = mdata.buscar(Paciente_idPaciente, tr);
           tr.commit();
           return m;
         } catch (Exception e) {
           tr.rollback();
           System.out.println("erro ao buscar" + Paciente_idPaciente);
           e.printStackTrace();
         }
         return null;
  } // buscar

  public Vector pesquisar(int id) {
     System.out.println(" Entou no Pesquisar");
     System.out.println("Vai criar Transacao");
     Transacao tr = new Transacao();
     
     System.out.println("Criou Transacao");
     try {
           System.out.println(" Entou no Try do Pesquisar");
           tr.beginReadOnly();
           PacienteConsomeMedicamentoData mdata = new PacienteConsomeMedicamentoData();
           Vector v = mdata.pesquisarPorIdPaciente(id, tr);
           System.out.println(" Vai dar o commit");
           tr.commit();
           System.out.println(" Deu o commit");
           return v;
     } catch(Exception e) {
         System.out.println("erro é o caralho ao pesquisar " + id);
         e.printStackTrace();
     }
     return null;
  } // pesquisar

  private boolean isEmpty(String s) {
     if (null == s)
       return true;
     if (s.length() == 0)
       return true;
     return false;
  }
  private boolean isEmptyInt(int s) {
     if (s > 0)
       return true;
     return false;
  }

  public static void main(String[] args) {
      PacienteConsomeMedicamento m = new PacienteConsomeMedicamento();
      PacienteConsomeMedicamentoDO paciente_medicamento = new PacienteConsomeMedicamentoDO();
      try {
            paciente_medicamento = m.buscar(6);
                System.out.println(paciente_medicamento.getPaciente_idPaciente());
      } catch(Exception e) {
          e.printStackTrace();
      }
  } // main
} // PacienteConsomeMedicamento